﻿// using System;
// using System.Net.Sockets;
// using Yoozoo.Framework.Managers;
// #if ToLua
// using LuaInterface;
// #elif XLua
// using XLua;
// #endif
// using Yoozoo.Managers;
//
// namespace Yoozoo.Gameplay.Managers
// {
//     public class GTANetworkReconnect : NetworkReconnect
//     {
//         private bool m_tirggerOtherSocketError;
//         public override void Update()
//         {
//             if (m_triggerConnectSuccess)
//             {
//                 CallToLua("C_OnConnectSuccess");
//                 m_triggerConnectSuccess = false;
//             }
//
//             if (m_triggerConnectFailure)
//             {
//                 CallToLua("C_OnConnectFailure");
//                 m_triggerConnectFailure = false;
//             }
//             
//             if (m_tirggerOtherSocketError)
//             {
//                 CallToLua("C_OnSocketError");
//                 m_tirggerOtherSocketError = false;
//             }
//         }
//         
//         public  virtual void OnNetworkConnected(NetworkChannelBase channel,object userData)
//         {
//             m_triggerConnectSuccess = true;
//         }
//
//         public override void OnNetworkChannelError(NetworkChannelBase channel, NetworkErrorCode code, SocketError error, string data)
//         {
//             if(code == NetworkErrorCode.ConnectError)
//             {
//                 m_triggerConnectFailure = true;
//             }
//             else if(code == NetworkErrorCode.Unknown || code == NetworkErrorCode.ReceiveError ||
//                 code == NetworkErrorCode.SendError || code == NetworkErrorCode.SocketError)
//             {
//                 m_tirggerOtherSocketError = true;
//             }
//             UnityEngine.Debug.LogWarning("Error Code : "+code+"data:   "+data+"\n  "+error.ToString());
//         }
//
//         public  override void CallToLua(string funcName)
//         {
//             
// #if ToLua
//             if (this.m_luaTable == null)
//             {
//                 this.m_luaTable = LuaManager.GetTable("L_Net");
//             }
//             var f = m_luaTable.GetLuaFunction(funcName);
//             if (f != null)
//             {
//                 f.Call();
//                 f.Dispose();
//             }
// #elif XLua
//             if (this.m_luaTable == null)
//             {
//                 this.m_luaTable = LuaManager.GetTable("L_Net");
//             }
//
//             if (m_luaTable!=null)
//             {
//                 var f = m_luaTable.Get<LuaFunction>(funcName);
//                 if (f != null)
//                 {
//                     f.Call();
//                 }
//             }
// #endif
//         }
//     }
// }